// 初始化编辑TALBEL
$()
		.ready(
				function() {
					// load data
					(function() {
						var url = "/fundSub.do?method=list";
						var callback = function(json) {
							if (json.success) {
								Jade
										.appendTr($('tbody'), template,
												json.result);
								// make table can edit
								$("#editableTable").tableEditor({
									EDIT_HTML : '编辑',
									SAVE_HTML : '保存',
									FUNC_PRE_EDIT : 'preEdit',
									FUNC_POST_EDIT : 'postEdit',
									FUNC_PRE_SAVE : 'preSave',
									FUNC_UPDATE : 'updateTable',
									FUNC_DELETE : 'deleteRow'
								});
							} else {
								// TODO 错误提示
							}
						};
						$.post(url, {}, callback, 'json');
					})();

					// 行模板
					var template = '<tr><td class="hidden" name="id"></td>'
							+ '<td name="fund"></td>'
							+ '<td name="buyPrice"></td>'
							+ '<td name="salePrice"></td>'
							+ '<td name="notifyMode" class="hidden"></td>'
							+ '<td><a href="#" class="tsEditLink">编辑</a>'
							+ '&nbsp&nbsp|&nbsp&nbsp<a href="#" class="tsDltLink">删除</a></td>'
							+ ' </tr>';

					var options = {
						COL_APPLYCLASS : true,
						CLASS : 'newRow',
						tableId : 'editableTable',
						template : template
					};

					$('#addNew').click(function() {
						jQuery.tableEditor.lib.appendRow(options);
					});
				});

// 发送请求保存
function updateTable(o) {
	// 1将jQuery对象的数据提取成需要的数据
	var data = formatRow(o.row);
	// 2.验证合法性
	if (!validateRow(data))
		return;
	// 3.保存数据
	var url = "/fundSub.do?method=save";
	var callback = function(json) {
		if (json.success) {
			info(json);
			$('td:first').html(json.result.id);
		} else {
			// TODO 提示错误
		}
	};
	$.post(url, data, callback, 'json');
}
// 删除行
function deleteRow(o) {
	var data = formatRow(o.row);
	if (data.id) {
		var url = "/fundSub.do?method=remove";
		$.post(url, data);
	}
}

// 点击保存前调用
function preSave(o) {

}

// 点击编辑前调用
function preEdit(o) {

}

// 点击编辑后调用
function postEdit(o) {
	// 1.股票输入框增加输入提示
	$("input.auto").autocomplete({
		// defined at fund-list.js
		source : FUND_LIST
	});
	// 2.NUMBER类型输入框只能是数字
	$("input.number").numeric({
		maxValue : 10000,
		emptyValue : false,
		minValue : 0,
		format : '0.00'
	});

}

// 将row数据转为JS Object
function formatRow(row) {
	// info(row)
	var data = {};
	row.each(function() {
		data[$(this).attr('name')] = $(this).html();
	});
	return data;
}

// 保存前验证行数据
function validateRow(data) {
	// info(data)
	// 1.股票不能为空
	if (!data.fund) {
		alert('基金不能为空!');
		return false;
	}
	// 2.卖出价大于买入价
	// if (data.buyPrice >= data.salePrice) {
	// alert('预计买入价不能大于预计卖出价!')
	// return false;
	// }
	return true;
}
